The XML validator allows you to perform a validation against its schema definition. Supported schema types are DTD, XML_SCHEMA, and RELAX_NG. It is configured simply by specifying the schema Type, the name QName, and the path to the schema file.
<validate.xml schemaType="XML_SCHEMA" name="{urn:switchyard-quickstart:validate-xml:0.1.0}order" failOnWarning="true" namespaceAware="true">
<schemaFiles>
<entry file="/xsd/orders.xsd"/>
</schemaFiles>
<schemaCatalogs>
<entry file="/xsd/catalog.xml"/>
</schemaCatalogs>
</validate.xml>
If you specify failOnWarning attribute as true, then validation would fail if any warning is detected during validation. If the XML content to be validated has namespace prefix, then you need to specify namespaceAware as true.
XML Catalog
You can use XML catalog to decouple the schema file location from schema definition itself. This schema is orders.xsd which has a import element. It refers to logical name orders.base by the schemaLocation attribute:
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:switchyard-quickstart:validate-xml:0.1.0"
xmlns:base="urn:switchyard-quickstart:validate-xml-base:0.1.0"
xmlns:orders="urn:switchyard-quickstart:validate-xml:0.1.0">
<import namespace="urn:switchyard-quickstart:validate-xml-base:0.1.0" schemaLocation="orders.base"/>
...
And this is the catalog.xml which resolves actual schema location from logical name orders.base:
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<system systemId="orders.base" uri="orders-base.xsd"/>
</catalog>